package com.redspr.redquerybuilder.js.client; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.core.client.JsArray; import com.google.gwt.core.client.JsArrayMixed; import com.redspr.redquerybuilder.core.client.table.TableFilter; import com.redspr.redquerybuilder.core.client.util.ObjectArray; import com.redspr.redquerybuilder.js.client.conf.JsFrom; /** * Root of JS configuration tree. */ public class JsConfiguration extends JavaScriptObject { protected JsConfiguration() { } public final native String getTargetId2() /*-{ return this.targetId; }-*/; public final String getTargetId() { String id = getTargetId2(); if (id == null) { return "rqb"; } return id; } public final native JsDatabase getMeta() /*-{ return this.meta; }-*/; public final native JsArray<JsEditor> getEditors() /*-{ return this.editors; }-*/; public final native JavaScriptObject getOnSuggest() /*-{ return this.suggest }-*/; public final void fireOnTableChange(ObjectArray<TableFilter> filters) { JsArray<JsTableFilter> result = (JsArray<JsTableFilter>) JavaScriptObject.createArray(); for (int i = 0; i < filters.size(); i++) { TableFilter tf = filters.get(i); JsTableFilter jtf = JsTableFilter.create(tf.getAlias(), tf.getTable().getName()); result.push(jtf); } fireOnTableChange2(result); } private native JavaScriptObject fireOnTableChange2(JsArray<JsTableFilter> filters) /*-{ if (this.onTableChange) { this.onTableChange(filters); } }-*/; public final native void fireOnSqlChange(String sql, JsArrayMixed args) /*-{ if (this.onSqlChange) { this.onSqlChange(sql, args); } }-*/; // XXX copy n paste public final native void fireDefaultSuggest(String tableName, String columnName, String columnTypeName, String query, int limit, JsCallback jsCallback) /*-{ if (this.defaultSuggest) { var arg = {tableName: tableName, columnName: columnName, columnTypeName : columnTypeName, query: query, limit:limit}; this.defaultSuggest(arg, function response(s) { jsCallback.@com.redspr.redquerybuilder.js.client.JsCallback::response(Lcom/google/gwt/core/client/JavaScriptObject;)(s); }); } }-*/; public final native void fireSuggest(String tableName, String columnName, String columnTypeName, String query, int limit, JsCallback jsCallback) /*-{ var arg = {tableName: tableName, columnName: columnName, columnTypeName : columnTypeName, query: query, limit:limit}; this.suggest(arg, function response(s) { jsCallback.@com.redspr.redquerybuilder.js.client.JsCallback::response(Lcom/google/gwt/core/client/JavaScriptObject;)(s); }); }-*/; public final native void fireEnumerate(String tableName, String columnName, String columnTypeName, JsCallback jsCallback) /*-{ if (this.enumerate) { var arg = {tableName: tableName, columnName: columnName, columnTypeName : columnTypeName}; this.enumerate(arg, function response(s) { jsCallback.@com.redspr.redquerybuilder.js.client.JsCallback::response(Lcom/google/gwt/core/client/JavaScriptObject;)(s); }); } }-*/; public final native JsFrom getFrom() /*-{ return this.from; }-*/; }